package com.fyb.basic.bit;

/**
 * @Author：MR.FANG
 * @name：BitComputeTest
 * @Date：2025/7/2 下午1:49
 */
public class BitComputeTest {
  public static void main(String[] args) {
      int a = 1 >> 2; //1右移两位 相当于 1/2/2 = 0
      int b = -1 >> 2;// 只是多了 一个 负号 -1
      int c = 1 << 2;  // 1 << 两位 相当于 1*2*2 = 4
      int d = -1 << 2;// 只是多了 一个 负号 -4
      int e = 3 >>> 2; // 无符号右移 低位溢出 高位补0  e= 0
      // abcd 对应的结果是多少
      System.out.println("a = " + a); // 0
      System.out.println("b = " + b); // 0
      System.out.println("c = " + c); // 4
      System.out.println("d = " + d); // -4
      System.out.println("e = " + e); //
      System.out.println("第二波计算");
      int f = 13 & 7; //两位全为1 结果为1 否则为 0
      int g = ~2; // 按位取反
      int h = ~-5;
      int i = -3 ^ 3; // 按位异或 两位 一位为0 一位1 结果为1 反之为0
      int j = 5 | 4; // 按位或
      System.out.println("f = " + f); // 5
      System.out.println("g = " + g); // -3
      System.out.println("h = " + h); // 4
      System.out.println("i = " + i); // 0
      System.out.println("j = " + j); // 5
  }
}
